Krupski:
You know... as I'm typing this I just realized that I'm doing it all wrong. There's no need to call the A/D read code from the ISR. All the ISR has to do is update the display with whatever the current value of the A/D reading is.
I'm intrigued to know why you're using an interrupt to trigger a display update. Given that the value you're displaying has been derived from multiple analog reads and not synchronised with or triggered by the interrupt, I don't see anything especially time-critical about updating the display.
You mentioned that you are using floating point calculations for the averages. That will slow things down a lot, and I would suggest you look at fixed point calculations instead. Obviously there is a limit to the resolution that you are going to display, so define the fixed point accordingly.