What about writing a function that gets the road/street that your GPS says you on on and compare it to your route. If the road you on on does not match any of the roads in your directions, re-calculate the route. Since your GPS might not have you plotted right on a road (maybe off the road by a few feet) check out this article which has a function to get the nearest address.
http://www.mp2kmag.com/articles.asp?ArticleID=50
Reverse Geocoding, Pt. III by Walt Cygan