I am looking at doing some geodetic calculations (Haversine formula) on GPS readings in my Arduino.

Forget 32bit floating point.. For any such calculation is 64bit floating point the choice at minimum, or decimal arbitrary precision formats (slow but precise). Any other option is simply wasting your time.. The precision of 32bit fp used in arduino is maybe 6-7 decimal places for +-*/, but worse with transcendental functions..