Have a look at this example: 1drv.ms/u/s!AkmrWgxeuxlKhIdbX3uKAyMjM_ABiQ
You need to match the velocity of the player and the follower every tick. In the sample I'm using moveto for both so it is easy, but if you are using 8-direction or platformer for the player movement you can still copy the velocity.
I'm spawning a follower waypoint every tick to show that it can be perfectly smoothed but you can certainly thin it out with no effect.