I don't have an Arduino yet but I can relate something you might want to try. In a previous life I used to write software for scientific instruments. One that we used required stabilising ambient oxygen readings for two minutes at a flow rate of 24l/s. That established a base rate which was used to compensate during the experiment. This got me thinking about something; base rates.
If you don't mind my asking but what readings do you get with your quad-copter stationary on the ground without the motor running and then stationary with the motor running but not lifting. Could that reveal anything useful. Sorry, that's the best I can chime-in with.