for xfce4wm: change the parameter activate_action from "bring" (which brings it to the current) to "none" (do nothing) or "switch" (switch workspaces). If you set it to none, it will stay on the assigned workspace and not switch to that workspace, if you set it to "switch", it will switch to that workspace on start of the application.
I have no idea how to prevent the switch in bspwm.
A fix would be to run steam in an lxc, the lxc assigned to a workspace will keep everything there.