Please don't bite me; I am only trying to help..
I assume that you pass a block of music samples into the resampler code, and (some time later) you get back a larger or smaller block of new samples (depending on whether you are up- or down- sampling). I assume that the passing of input blocks in, and output blocks out, cannot be fully synchronous, because the output resampling process has to process several input samples in order to generate each output sample, and so it has to hold (a copy of) some of the input samples from the end of one block, to be used in combination with the input samples at the start of the next block, in order to generate a smooth output sample waveform across those two blocks. Or??
So you either have a "stuttered" synchronous I/O across the resampler code, or an asynchronous I/O process. So I would still look at whether you measure "position" based on the count of samples/blocks passed in, or whether you measure it based on the count of samples/blocks passed out...
PS the behaviour may also differ depending on whether you are up or down sampling, and the numeric ratio between the in and out sample rates. Since depending on those parameters, the resampler may need to process over more or fewer input samples to generate a respective output sample.
PPS you may also find that the number of samples in the output block per sample in the input block may not be a constant multiplier. Depending on whether or not the resampler code has currently enough input samples to generate the respective output sample. In other words, in your position code, do not count just the blocks, but rather count the actual number samples in each block..