If you look at the source of "analogRead", you'll see that it breaks down into three distinct sections.
- setup the input mux and start the conversion
- Idle wait for the conversion to finish
- read the result.
It is very simple to pick apart - no interrupts required.