Converting from STL to STEP is essentially always a case-by-case thing.
If you import, sew, check geometry, refine, etc., you can eliminate unnecessary triangles in planar faces. But you can't magically make a 120-sided-polygon that should be a circle a circle; you're going to have to do that yourself.
Though Mark Ganson's MeshRemodel workbench looks interesting: https://github.com/mwganson/MeshRemodel
And FreeCAD is not the best tool for correcting broken meshes, which are commonplace. MeshLab and the vaguely-on-life-support AutoCAD MeshMixer are better at it.
STEP/IGES is as you say more or less essential if you want to work with code-CAD output in any other serious context. STL is not enough: it is like converting to JPEG in the middle of a photo editing flow, not at the end. It destroys information — in this case geometry.
You might find DeclaraCAD interesting.
Yeah I hate messing with STLs for that reason. It's an output format. Similar to when you make an image in Photoshop with a load of layers and then export to jpeg where it's flattened and all the layer info is lost.
Obj is a bit better but for real design modification you kinda need the original file and the program it was designed in. At least in my experience.
I've never come across STEP though, is that a real design parameter preserving file format?