Welcome in the forum!
Interrupt routines should not implement delays as a general rule. The complete system may stall.
Easiest would be to implement a timer that fires every 2 ms, The handler should remove the interrupt cause and set a flag that indicates the situation. in the main loop when the flag is set, reset it and read a value from ADC which must be configured for single conversion.
Would you know of a good example of sample code for a timer firing and reset? I have been following the ADC and UART example that comes with the 059 Psoc 5lp kit. The project goal is to sample analog readings from a pulse sensor, convert them to digital, calculate a heart rate, and send through a UART.
Creator -> Start page -> Find code example -> PSoC5LP, Timer.
Same with UART