Stories are compressed harder than feed posts. Instagram assumes a story is disposable, so it encodes it at a lower quality and scales it aggressively when the source is large. A screenshot or a 12 MP photo dropped straight into a story is the classic recipe for mush.
Sending a 1080×1920 JPEG that already sits under about 1.5 MB gives the app much less to do. In our tests the difference is most visible on text and thin lines, which is exactly what most stories contain.