Best way to reduce size/number of polygons on an STP model?

There are two factors at play: the number of polygons in the meshes, and the overall number of meshes.

Unreal has a pretty good mesh reduction process that UE4 Archviz mentioned, but that only helps once they’ve already been imported. I also think it maintains the original mesh in order to be non-destructive which is great and helps with performance, but not necessarily with file size (which can itself be important for mobile device deployment, not typically a problem for desktops). This also doesn’t help reduce the overall number of meshes.

Depending on the detail of the model and what you need to actually see in Unreal, you might be able to save on both triangles and meshes by getting rid of things like nuts/bolts/washers or other similar small details that aren’t needed for the overall result you are trying to achieve. If possible, it would be best to do this when exporting the stp file. If not, the dataprep features that come with Unreal Studio can be used to help. For example: Modeling Mode in Unreal Engine | Unreal Engine 5.1 Documentation

If they don’t need to move, it can also help to join meshes together. Again, probably best to do it outside of unreal if possible, but can be done in Unreal by merging actors.

(I feel like I remember seeing another example where they were using dataprep to automatically remove small objects, but can’t find that link immediately…)

There are also third-party options that provide solutions for this kind of thing. Optim and InstaLOD come to mind, although I’m sure there are others. If this is a process that you are going to have to do repeatedly, it’s definitely worth looking into.