My fuel gauge does the same thing. It is very accurate until it gets down below 1/2, and you cannot trust it below 1/4. My wife has run it dry twice and it still shows 1/4 tank on the guage. Funny thing is, the idiot light only comes on when it is completely dry!
I guess I am too cheap and lazy to fix the sending unit and idiot light. I simply keep topping off the tank when it gets below 1/2. Some day I'll get it fixed, but it is not on the top of my 'to-do' list right now.
I hope this is your problem.... it is the simplest to fix!