if(bluetooth.available()) // If the bluetooth sent any characters
{
Serial.print(val);
}
if(Serial.available()) // If stuff was typed in the serial monitor
{
bluetooth.print(val);
}
This is apparently broken in two ways:
You make generating output contingent on unrelated input data being available. There's no apparent reason why receiving bluetooth should trigger local printing of the potentiometer value on the serial monitor, or why receiving from the serial monitor should trigger bluetooth printing of the potentiometer value.
You are checking the serial and bluetooth available() methods, but you are never reading the characters. Thus the input buffers will probably overflow.
Likely your best solution would be to simply remove the if statements and always echo the value to both outputs in a loop, ignoring the inputs - unless there's some reason those are important.