The fuel level sender is part of the fuel pump assembly. There are two brass contacts on the pivot point for the float arm that detects fuel level, and they slide across a grid of PCB contacts to vary resistance, thereby letting the car know how much gas you have. The contact points on the float arm are subject to degradation, and when they start to wear you start to get inconsistent fuel level readings. The link Mike provided shows you how to change the float arm pivot component that has the two brass contact fingers on it. This should make you problem go away. In the meantime, figure out how many miles you can go on a full tank of gas, subtract 50 miles, and every time you hit that mileage on the trip recorder fill the tank and reset the trip recorder.
2001 Bonneville SSEi (retired at 365,000 Kms.)
2014 Jeep Grand Cherokee Overland (yes, I know its not a GM)