Is there a way to force non-combat ships to stop "Evading hostile fleet"?

Set their behaviour to passive.

You can change a fleets behaviour in the fleet window (bottom left), can't provide a screenshot right now, but should be easy to find.

There are three options:

  • aggressive: fleet automatically attacks hostiles
  • passive: fleet won't attack on its own, but will defend itself
  • evasive: fleet retreats as soon as enemies appear.

non-combat ships are on evasive by default and as such they will run immediately, when a hostile is in the system. I recommend setting them to passive while exploring, but evasive, once you get in a war.