http://www.cplusplus.com/reference/cmath/pow/
Wychodzi na to, że niezależnie od wersji C++ pow zwraca wynik typu zmiennoprzecinkowego. Komputer od wyniku 124 może obcinać wynik tej funkcji np. 124,999999 rzutuje na int 124. Spróbuj może zaokrąglić wynik
// tę linijkę
wartosc=pow(liczba,potega);
// zmień np. na:
wartosc=round(pow(liczba,potega));
Poza tym oczy mi krwawią jak czytam Twój kod.
Szybki refactor:
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
cout <<"Podaj liczbe ktora bedziesz chcial potegowac ";
cin >>liczba;
cout <<"Podaj wartosc potegi ";
cin >>potega;
cout<<round(pow(liczba, potega));
return 0;
}