Simply putting a software delay in the ADC loop will slow down the sample rate, but this is a very crude way of doing things. You are effectively throwing away CPU that could be used doing other things, such as drawing the previous waveform.
If you look at the ADCSRB register, you will notice that an ADC conversion can be automatically triggered by a number of events without any software overhead. Most of these events are timer related; either a timer overflow or a output compare match event. You could set up a timer with an output compare function to fire this event at very precise, and easily adjustable time intervals. This would then start an ADC conversion, and when the ADC conversion has completed you could use the ADC interrupt to load the new sample into the buffer. When the buffer is full you can disable the ADC interrupt and raise a flag (just set a variable to '1') so that the main loop knows it's time to update the display.
If you want to be clever, you can use two buffers (you have probably heard the term "double buffered" if you have been programming for long). This way you alternate between the buffers being filled by the ADC, so that the display can be updated from one buffer whilst the other buffer is being filled.
At some point you will notice that the waveform display isn't very stable because you have no triggering, you simply start sampling at some random point in the waveform. You might want to consider using the analog comparator to provide a trigger function, or this could also be done in the ADC interrupt. Remember to keep your interrupt handlers as short and fast as possible, no divide or floating point operations for instance.
To do these things you are probably going to have to step outside of the basic Arduino libraries and start accessing hardware registers directly.