Maybe you could use a attraction force vector? This is just what I thought might work off the top of my head:
Basically, each frame, you get the target position (position of target entity) and take the current position (position of following entity) from it. This is your attraction vector. Normalize this vector (divide its x by its length and its y by its length) and multiply it by the amount of force; this is the key bit. If you use a constant force, it’ll basically be the same as MoveTowards, but you can vary the force. For example, your force could be inversely proportional to the distance between the two entities; this will make your following entity slow down as it approaches the player. Or you could simply accelerate your force (start at 1, increase it slowly till it hits some kind of maximum). You could tween your force between some values for some crazy effects
Also, make sure you ‘massage’ the force value; you want to make sure it doesn’t go beyond a certain maximum and minimum, and you could also pass it through a FlashPunk Ease function. There’s lots of ways you can play with it for different effects!
If you’re feeling lazy you could check this out, it has some movement behaviours included that might be the kind of thing you want: ImmaBoid - AI Steering Behaviors