Maybe you're missing a step? This is what I do to create watersheds:
1) Fill
2) Flow Direction
3) Flow Accumulation
4) Stream Link [via Raster Calculator: "StreamLink (SetNull (FlowAccumulation < n, FlowAccumulation), FlowDirection)", where n is 1% of max flow accumulation but the smaller the number the more stream segments you'll get] -- results in the StreamNetwork raster that I use in step 5
5) Watershed [via Raster Calculator: "Watershed (FlowDirection, StreamNetwork)"]
Janet