Since your images apparently have varying sizes, but you seem to show them scaled to (roughly) the same size, you need to scale your badge.
Try something like this:
// Add this line
CGFloat desiredBadgeSize = 0.2; // Badge is 20% of image height
// Change these lines
CGFloat scale = image.size.height / watermark.size.height * desiredBadgeSize;
[watermark drawInRect:CGRectMake(image.size.width - watermark.size.width * scale, 0, watermark.size.width * scale, watermark.size.height * scale)];
The code above assumes that you scale your images to the same height on your device.
Another approach, which usually is faster, is put the badge in an UIImageView and add that to the view containing you image. That way you still have your original image, and can easily remove the badge too if you need to.