(although the adc samples at a fix interval i do not want to use the interval time so that i wont have to adjust it everytime im playing with the sampling rate.)
Any time you're using a series of digital samples to mean something, you're working with Digital Signal Processing (DSP). A lot of that field looks intimidating at first glance, and there are ways to do simple things without making it look like you're in that world. But you still are, and the same fundamental rules still apply.
One of those rules is that *all* DSP functions are based on samples and care nothing about time. If you vary the sample rate, then all of your frequency settings track that variation perfectly. So if you dive into using FIR's, IIR's, FFT's, or anything else that has to do with frequency, then you have to redo all of that math to get the same behavior with the new sample rate. Thus, when physical frequency is mentioned in a DSP equation, it's *always* as a ratio with the sample rate: Fc/Fs.
It might appear that you can get around this by using an additional, slower clock that is unrelated to the stream of samples, and grab your working set at that rate. But what you're actually doing there is decimation. Still a DSP concept, and the most trivial and naive form of re-sampling. Nevertheless, if the highest frequency captured (interest means nothing here) is less than Nyquist at that lower rate, it works just fine.
You can conceptually build an arbitrary re-sampler by finding an integer ratio between the source and destination rates, stuffing zero-valued samples into the original, lowpassing it (now you have a smooth signal that is ridiculously oversampled), and then taking the samples you need from that (same decimation as above). Then combine all the steps to end up with what is essentially a modified single-stage FIR lowpass, that only calculates what it needs and inserts the appropriate zeros at its input.
Something that I've done a lot in my projects is to run the ADC as fast as it will go, free-running, and put a "quick and dirty" lowpass in the ISR. (1st-order filter, or "exponential average", implemented using shifts and a lot of arithmetic rearranging to make it trivial to code: just 2 lines in C) The output of that lowpass goes to a global variable that everything else can grab whenever it gets around to it. Effectively, this oversampling followed by a lowpass and decimation, converts speed into resolution, and is also used in pretty much every audio ADC. In that form, it's called "sigma-delta".
One of the huge benefits of this, that may not be immediately apparent, is that the requirements are greatly relaxed for an analog lowpass that comes before the ADC. Your *initial* sample rate determines the Nyquist frequency for the analog signal, and then the digital lowpass finishes the job. For example, the initial sample rate for an audio ADC is typically in the mid-MHz range. The chip then lowpasses it at that rate and pulls samples to send out at 48kHz or whatever the actual output is. So the analog filter only has to care about that initial mid-MHz rate...for audio! That is MUCH easier to design and cheaper to make! And then the digital filter has the "brick wall" response that is needed to fit a 20kHz signal with no attenuation into 48kHz samples.
If you run your ADC at, say, 10ksps (10kHz sample rate) for a 60Hz signal of interest, then you're roughly in the same ballpark as that audio ADC.