Undo isn't working correctly?
Make sure you are undoing in the edit mode. Undoing in the edit mode will undo individual steps you made while editing your object (eg. moving vertices, extruding faces...). Undoing in object mode will undo every change made to that object while you were in edit mode.