Switch to a more modern microcontroller with better ADC and hardware-based timing (the micros() function with interrupts will give you less precise results). Maybe buffer data for a whole run and dump it at the end. This might be optional. At 115200, dumping 60 characters out will take nearly a quarter of your window.
Sounds like a plan. I have dumped the whole run to a bigger before and it works well. What micro do you recommend? I just bought a Minima id that is useful.