you're asking for pixel-perfect accuracy which, in my opinion, is overkill and would be a serious performance hit.
that being said, and keeping your current method as a base, once the sprite is detected, you would have to figure out which image (frame, if animated?) it's using, calculate which pixel in that image the pointer is currently over, turn that pixel into a memblock and read its alpha value there to achieve what you're looking for.
instead, consider using
SetSpriteShape() commands. ideally
SetSpriteShapeBox() which is the fastest of the bunch. set the box size (and offset, where appropriate, and/or rotation) to get closer to the accuracy you're looking for. If a circle would be more accurate for a given sprite, then
SetSpriteShapeCircle() would be the next-fastest, i believe, followed by
SetSpriteShapePolygon() for improved accuracy.