primero tienes un error garrafal... "double main()" main siempre debe ser int y unicamente int, y en general debe retornar 0 que indica "ok" a nivel de sistema...
segundo... los defines en general no son mala practica pero no están lejos, ya que son directivas de preprocesador y no estás declaradas de manera bien controlada
que tipo de variable son en tu codigo Xo, Xn y n... podrías responder eso en base a tu codigo? char, short, int, long, float, doble? sabes si es signed o unsigned?
la función main está incompleta, aunque puede ser una asunto de copiado así que no me meto allí...
tienes 2 caminos
seguir con los defines (que no lo recomiendo para nada) y entonces usar casting (conversión implicita) donde solo cambiarías una linea
h=(xn-xo)/(double)n;
o de la manera que debe ser, usando constantes de manera que están disponibles en tu código tienes controlado su tipo y no son alterables
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(){
const double xo = 5;
const double xn = 15;
const double n = 9;
double h;
h=(xn-xo)/n;
printf("El paso h es: %f \n", h
); return 0;
}