Finally I could draw a precise route by decoding the "polyline" of each step returned by the service. A polyline contains an object holding an array of encoded points that represents an approximate path.
So I decoded that into a List of GeoPoints and then drew the lines between those GeoPoints.
In case someone needs to do something similar, this was really useful to me: