One way I do this is through creating multiple uv maps.
Create the first UV map as usual.
In the Object Data panel click the "+" to add a new UV Map.

- In the UV/Image Editor the new UV Map will now be active. Move the UV Map (G) to the new desired location.

In the Node Editor create two "UV Map" nodes from the input submenu, selecting one of your UV Maps on each.
Plug them into a color, Mix RGB node.
Use this as the input for the Vector value on your image texture node.

The Factor (Fac) value is now the value for going between the two UV maps.
Animate this value by pressing i while your mouse hovers over the fac field. You should place the first keyframe when the slider is at 0 and your time cursor is at the beginning of your animation, and the second when the slider is at 1 and your time cursor is at the end of the animation.
In the end, your final result should look like this:

Please note: this method works for scaling, and translating. Small rotations (< 90 degrees) will work okay, but any larger will start to cause larger distortions and other methods should be use.
I hope this was helpful.
Thank you,
Uncle Snail