The triangulated geometry that is created by an STL exporter usually results in very long triangles (polygons), when it comes to flat faces. Especially, when the flat face has holes or cavities, like the one in your example. Also the STL tesselation tries to use as few polygons as possible, to keep the file size down (and to keep your programs responsive).
For accurate displacements, however, you will need the opposite: a dense and super-evenly distributed geometry, because a displacement can only shift the existing geometry, it will not create new faces. So, you will rather need a geometry distribution like this:
This is done by a Modifier called "Remesh". You need to set the Voxel Size quite low (depending on the size of your mesh), as this will create more densely distributed faces. But it can make your computer slower.
Now you can add a Displacement Modifier or make a displacement Material in the Shader Editor: