No, that won't work. The only thing you can do is to minimize the errors or add dithering to spread the spurs. Changing the sine values will only increase the errors and introduce *more* noise.
Linear interpolation works well when the function are are approximating is not far from a straight line. The problem you are seeing is that you are indexing the waveform by steps of 1 with arbitrary waveform values. In that case you are trying to approximate 90 degree phase steps by straight lines... no, that won't work very well.
What you are doing is sample rate conversion. The waveform file is generated at sample rate X and you wish to play it back at sample rate Y. Rather than trying to force the design using a crude filter, why not look at the problem as a sample rate conversion and see how it has been done by the rest of the world many times in the past?
Is there a reason why you need to convert the sample rate in real time? A PC can convert the sample rate very easily using existing programs. Even if you do need real time conversion, you can treat the problem as a sample rate conversion and get a good solution easily.