Try something like this:
vec_diff(velocity, player.x, me.x); // Now we have a vector from the particle to the player (right now it doesn't mean anything)
vec_normalize(velocity, magnitude); //whatever the size..
vec_add(velocity, me.x); //now the velocity is in the correct place
After we have the velocity vector, we just use it to change the position as we normally would.
me.x += velocity.x * time_step;
me.y += velocity.y * time_step;
This has to be done every frame.
If you want to do with c_move, you have the option of using 'relative vector', and we don't need the vec_add.
Now, if the particle isn't reaching the player, just increase the magnitude of the velocity vector. Add something like a magnitude += 0.1; (have to experiment with some values)