Normal map baking gradients instead of "flatness"
You need to use edge splits on sharp corners.

Set the whole object to smooth shading, select the edges to be sharp, press ctrl + E and select Mark Sharp. Then add the Edge Split modifier. You might skip marking edges sharp manually and rely on the angle based edge splitting.