Servo pauses near end of move

I'm using an MG995 servo with my arduino Nano and I can control it fine.

However, if I set an angle, it'll move to maybe within 5 degrees of that, then pauses for a second or two, then completes its move.

Also, after a few moves, it seems to stop responding to commands

This makes the move rather unreliable and I can't work with that.

Here's a gif of what happens: https://media.giphy.com/media/l4JzfVJwAlQwTMilO/source.gif

Can anyone suggest what is causing this?

Thanks

Ok, I've tried externally powering it and that seems to have solved the issues.