Thing with using the third-person controller where you're rotating the object itself to turn, you're sacrificing a potential node where you can extract rotation.
personally (and this isn't to say that this is what would work for you) I would nest the mesh as a child of the player object, tell the main player object not to move and instead of rotating the object itself, send the vector3 to the mesh object and use that as the "rotate towards" function.
This would help because then you'll be able to extract the rotation of the mesh object and use that as a sort of indicator that you can use to detect what direction the player is facing so as to hook up an animation system to handle it.
though, to be honest, this is a rather broad question and the solution is rather complex so please understand that that could be why there hasn't been much traction on this thread so far.