You could watch for touch events in the UISlider, and on the touch down event, you could set scrollEnabled to NO for the UIScrollView, then on the touch up inside & outside events, set it to YES again. See if that solves the issue for you, or does the scrolling of the UIScrollView happen before the UISlider receives any touch events?
EDIT: As Noah pointed out, this won't work. What you can do instead is subclass the UIScrollView and override the touchesBegan, touchesMoved, and touchesEnded methods. Inside there you can check if the touch corresponds to the area that includes the UISlider and pass the touch manually to the slider if it does. I did exactly this for a project I was working on that had a dial (custom control I made) inside a scroll view. I needed to be able to turn the dial without scrolling. When I would detect that a touch landed inside the dial inside touchesBegan I would disable scrolling on the scroll view, then in touchesMoved I would pass them to the dial. Also you may want to look at the hitTest:withEvent: method to intercept some touches there.