A well made high poly, low poly, and normal map should almost look identical in UE4, until you start zooming in.
Normal maps aren’t handled the same way universally, there’s no standard that every application, baker, and game engine follows, so it can be a clunky process finding a workflow that works for you.
Make sure you are using a baking program that supports MikkTSpace (it’s a tangent bias for normal maps that UE4 uses), xNormal, Substance Painter/Designer, and Blender all should support it, ZBrush definitely doesn’t and I wouldn’t suggest baking normal maps in ZBrush (except tiling textures are okay).
Triangulate your lowpoly mesh before baking.
Check the smoothing groups or hard edges on your low poly before baking. You can have hard edges or smoothing splits where there are UV splits, but it’s generally easiest to put everything in one smoothing group/make sure there’s no hard edges, that’s how I would approach it for testing your model. Smoothing groups for game is a huge separate topic.
Again make sure you are baking in an application that supports MikkTSpace, and try to find if there’s any documentation on using that application and UE4. For example in Substance, compute tangent space per fragment needs to be checked, for xNormal, Compute Binormal in the Pixel Shader needs to be check in the MikkTSpace settings.
That should fix some of the artifacts I’m seeing on your UE4 model, there’s so inverted areas, seams, and areas that are not shading correctly.