Utiliza realloc(void* puntero_anterior, size_t tamaño). De todos modos, no se asegura que vaya a ser la misma dirección.
Así que tienes 2 posibilidades: o dejar la memoria y utilizar solo lo que vayas a utilizar, o no necesitar que sea siempre el mismo puntero. No hay razón para que tengas que usar siempre la misma dirección.