there are many tools to do this but they may not be accurate all the time. you can use rank tracking tool of digital point, then you have rank checker of SEOMOZ. but it is always better to check the rankings manually in order to get the accurate statistics
Google rankings can vary by time of day, day of week, the city (not just the country) from which you make the query, which datacenter you get according to Google's load balancing, what user agent browser you use, recently made queries (even if you're not logged in), whether you use a Google API - and probably even more.
Some queries are less susceptible to these variations than others, but there truly is no way to accurately navigate those waters that I can think of.