GPS altitude precision sucks, especially if you're moving. I suspect averaging would help.
A pressure sensor is a lot cheaper, but as you point out pressure altitude varies with weather.
Rocket altimeters seem to work on AGL vs. MSL - i.e., relative altitude instead of absolute. This neatly sidesteps the problem.
I've got working code for the Freescale MPXAZ6115/MPXHZ6115 sensors. The Perfectflite avionics use this one.
-j