can you find the x position where you first touch the screen ? (and store this position maybe in a instance variable ?)
do something like while in touch find new touch x position (store this position)
find the difference between old touch x and new touch x position
offset your ship by same amount
set old touch to be the new touch
do it again while in touch